const AUTH=require('../../utils/auth')
const API=require('../../http/api')

Page({
  data:{
    //1:表示没有头像  2:表示有头像
    isUser:1,
    show:false,
    value:''
  },
  //打开修改用户对话框
  openDia() {
    this.setData({
      show:true
    })
  },
  //点击弹框的确定事件
  async confirm(e) {
    console.log(this.data.value)
    const valid=AUTH.checkUserIsLogined()
    //拿到value更新用户昵称
    if(valid) {
      const nick=this.data.value.trim().length>0 ? this.data.value.trim():'微信用户'
      const token=wx.getStorageSync('token')
      const res=await API.updateUserInfoApi({
        token,
        nick
      })

      if(res.code===0) {
        wx.showToast({
          title: '更新成功',
        })

        this.getUserDetail()
      }
    }
   

  },
  //点击取消事件
  cancel() {},
  onShow() {
    //拉取用户详情
    this.getUserDetail()
  },
  getchooseavatar(e) {
    console.log('111:',e)
  },
//获取用户详情
  async getUserDetail() {

    const valid=await AUTH.checkUserIsLogined()

    if(valid) {
       //登录了，去获取用户详情
      const token=wx.getStorageSync('token')
      //调用用户详情接口
      const res=await API.getUserDetailApi(token)

      console.log('是否拿到用户详情：',res)

      const _data={};

      _data.baseInfo=res.data.base;

      if(res.data.base.nick && res.data.base.avatarUrl ) {
          //有昵称并且有头像,更新状态为2
          this.setData({
            isUser:2,
          })

      }else {
        this.setData({
          isUser:1
        })
      }

      this.setData(_data)

    }else {
      //去登录
      await AUTH.authRegAndLogin()
    }


  },
  //一键授权方法
  goAuth() {
    const _this=this;
    wx.getUserProfile({
      desc: '获取用户信息',
      lang:"zh_CN",
      success(res) {
        
        //调用一个更新用户的方法
        _this.updateUser(res.userInfo)
      }
    })
  },
  //更新用户信息方法
  async updateUser(userInfo) {
    console.log('要更新的用户信息：',userInfo)
    //检测用户是否登录，如果登录再更新用户信息
    const valid=await AUTH.checkUserIsLogined()
    if(valid) {
      const {avatarUrl,province,city,gender,nickName:nick}=userInfo
      const token=wx.getStorageSync('token')
      //调用更新用户的接口
      const result=await API.updateUserInfoApi({
        avatarUrl,province,city,gender,nick,token
      })

      //再拉取用户信息
      this.getUserDetail()
    }else {
      AUTH.authRegAndLogin()
    }
  },
  //跳转到动态会员页
  goMember() {
    wx.navigateTo({
      url:'/pages/member/member?title=会员码'
    })
  },
  //选择用户头像后的回调
  async getUserAvatar(e) {
    console.log('选择完头像后的回调：',e)
      //检测用户是否登录，如果登录再更新用户信息
      const valid=await AUTH.checkUserIsLogined()
    //e.detail.avtgarUrl只是一个本地的临时文件，不能直接访问
    //将得到的临时路径上传通过接口上传给后台
    if(valid) {
      const token=wx.getStorageSync('token')
      //调用上传接口
      const res=await API.uploadFile(token,e.detail.avatarUrl)

      console.log('上传成功后返回的信息：',res)
      //更新用户头像
      const res2=await API.updateUserInfoApi({
        token,
        avatarUrl:res.data.url
      })

      console.log('更新成功：',res2)
      if(res2.code!==0) {
        wx.showToast({
          title:res2.msg
        })

        return;
      }
      if(res2.code===0) {
        wx.showToast({
          title:'更新成功'
        })

        this.getUserDetail()
      }
    }

  }
  
})